package com.jbpm.service;

import org.jbpm.graph.def.ActionHandler;
import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.graph.node.TaskNode;
import org.jbpm.taskmgmt.exe.TaskInstance;
import org.jbpm.taskmgmt.exe.TaskMgmtInstance;

/*
 * 根据业务规则，一个节点的任务分配给多人
 * */
public class MultiTask implements ActionHandler{

	public void execute(ExecutionContext ctx) throws Exception {

		//1.从填单界面选择人员，在action中保存选择的人员到meetingmember变量
		//meetingmember=2,3,4
		//2.从变量取出参会人员ID
		String member=(String)ctx.getContextInstance().getVariable("meetingmember");
		String actorIds[] = member.split(",");
		TaskMgmtInstance tmi = ctx.getTaskMgmtInstance();//获取任务实例
		TaskNode tn = (TaskNode)ctx.getNode();
		//创建多个任务
		for(int i=0;i<actorIds.length;i++){
			//ctx.getToken()代表当前节点
			TaskInstance ti = tmi.createTaskInstance(tn.getTask("会签"),ctx.getToken());
//			ti.setName("经理审批"+actorIds[i]);//给创建的任务取名称
			ti.setActorId(actorIds[i]);//对不同参与人员分创建任务
		}
	}
}
